package org.zxyj.manage.dao;

import java.util.List;
import java.util.Map;
import org.zxyj.manage.entity.CourseTemplate;
import org.zxyj.manage.entity.CourseTemplateArea;
import org.zxyj.manage.entity.CourseTemplateTmxx;

/**
 * 课程答卷模板DAO
    * @ClassName: ICourseTemplateDao
    * @author liuyong
    * @date 2016年7月8日
    *
 */
public interface ICourseTemplateDao {
	/**
	 * 查询所有数据
	 * 
	 * @return List<CourseTemplate>
	 */
	List<CourseTemplate> findAll();

	/**
	 * 根据条件查询数据
	 * 
	 * @param criteria
	 * @return List<CourseTemplate>
	 */
	List<CourseTemplate> find(Map<String, Object> criteria);

	/**
	 * 查询数据条数
	 * 
	 * @param criteria
	 * @return Long
	 */
	Long count(Map<String, Object> criteria);
	
	/**
	 * 根据条件查询单条数据
	 * 
	 * @param criteria
	 * @return CourseTemplate
	 */
	CourseTemplate findById(Map<String, Object> criteria);
	
	/**
	 * 列表页面根据条件查询数据
	    * @Title: getList
	    * @param @param criteria
	    * @param @return    参数
	    * @return List<Map<String,Object>>    返回类型
	    * @throws
	 */
	List<Map<String,Object>> getList(Map<String, Object> criteria);
	/**
	 * 列表页面根据条件查询数据条数
	    * @Title: getListCount
	    * @param @param criteria
	    * @param @return    参数
	    * @return Long    返回类型
	    * @throws
	 */
	Long getListCount(Map<String, Object> criteria);
	
	/**
	 * 插入单条数据
	 * 
	 * @param entity
	 * @return int
	 */
	void insert(CourseTemplate entity);
	
	/**
	 * 更新单条数据
	 * 
	 * @param entity
	 * @return int
	 */
	void update(CourseTemplate entity);
	
	/**
	 * 删除数据
	 * 
	 * @param criteria
	 * @return int
	 */
	void delete(Map<String, Object> criteria);
	/**
	 * 删除模板区域数据
	 * 
	 * @param criteria
	 * @return 
	 */
	void deleteArea(Map<String, Object> criteria);
	/**
	 * 删除模板区域题目数据
	 * 
	 * @param criteria
	 * @return 
	 */
	void deleteTmxx(Map<String, Object> criteria);
	
	/**
	 * 更新截图区域坐标信息
	    * @Title: updateAreaPos
	    * @param @param criteria    参数
	    * @return void    返回类型
	    * @throws
	 */
	void updateAreaPos(Map<String, Object> criteria);
	
	/**
	 * 更新考号采集记录填涂区大小
	    * @Title: updateKhttcjAreaInfo
	    * @param @param criteria    参数
	    * @return void    返回类型
	    * @throws
	 */
	void updateKhttcjAreaInfo(Map<String, Object> criteria);
	
	/**
	 * 新增小题目信息
	    * @Title: insertMoreTmxx
	    * @param @param tmxxList    参数
	    * @return void    返回类型
	    * @throws
	 */
	void insertMoreTmxx(List<Map<String,Object>> tmxxList);
	/**
	 * 更新小题目信息
	    * @Title: updateTmxx
	    * @param @param map    参数
	    * @return void    返回类型
	    * @throws
	 */
	void updateTmxx(Map<String,Object> map);
	
	/**
	 * 保存截图信息
	    * @Title: insertArea
	    * @param @param criteria    参数
	    * @return void    返回类型
	    * @throws
	 */
	void insertArea(Map<String, Object> criteria);
	/**
	 * 更新截图信息
	 * @Title: updateArea
	 * @param @param criteria    参数
	 * @return void    返回类型
	 * @throws
	 */
	void updateArea(Map<String, Object> criteria);
	
	/**
	 * 根据学校查询考试批次数据
	    * @Title: getExamBatchs
	    * @param @param criteria
	    * @param @return    参数
	    * @return List<Map<String,Object>>   返回类型
	    * @throws
	 */
	List<Map<String,Object>> getExamBatchs(Map<String, Object> criteria);
	/**
	 * 根据学校考试批次查询年级数据
	    * @Title: getExamGradeByBatch
	    * @param @param criteria
	    * @param @return    参数
	    * @return List<Map<String,Object>>    返回类型
	    * @throws
	 */
	List<Map<String,Object>> getExamGradeByBatch(Map<String, Object> criteria);
	/**
	 * 根据学校考试年级查询考试科目数据
	    * @Title: getExamCourseByGrade
	    * @param @param criteria
	    * @param @return    参数
	    * @return List<Map<String,Object>>    返回类型
	    * @throws
	 */
	List<Map<String,Object>> getExamCourseByGrade(Map<String, Object> criteria);
	
	/**
	 * 查询已设置的模板区域集合
	    * @Title: getCourseTemplateAreaList
	    * @param @param criteria
	    * @param @return    参数
	    * @return List<CourseTemplateArea>    返回类型
	    * @throws
	 */
	List<CourseTemplateArea> getCourseTemplateAreaList(Map<String, Object> criteria);
	
	/**
	 * 查询模板设定区域题目信息数据
	    * @Title: getCourseTemplateTmxxList
	    * @param @param criteria
	    * @param @return    参数
	    * @return List<CourseTemplateTmxx>    返回类型
	    * @throws
	 */
	List<CourseTemplateTmxx> getCourseTemplateTmxxList(Map<String, Object> criteria);
	
	/**
	 * 查询模板划定区域信息
	    * @Title: queryCourseTemplateArea
	    * @param @param criteria
	    * @param @return    参数
	    * @return List<Map<String,Object>>    返回类型
	    * @throws
	 */
	List<Map<String,Object>> queryCourseTemplateArea(Map<String, Object> criteria);
}